package com.reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 *
 * Entity.java 
 * 2018年4月17日 上午9:18:58
 * 
 * @author yaojinshan
 * @param <T> 泛型参数对象<br>
 *           
 */
public class Entity2<T> {
	public final static String METHOD_PRRFIX_SET = "set";//方法前缀：set
	public final static String METHOD_PRRFIX_GET = "get";//方法前缀：get

	public Entity2() {

	}
	
	@SuppressWarnings("all")
	public void fillData(T t,Object value,Field field,String prefix) throws Exception {
		String methodName = prefix + field.getName().substring(0, 1).toUpperCase()+ field.getName().substring(1);//
		Method method =  t.getClass().getDeclaredMethod(methodName, value.getClass());
		if(method != null){
			method.invoke(t, value);
		}else{
			throw new NoSuchMethodException(method.getName() + "方法不存在！");
		}
	}

	public void printClassName(T t) {
		System.out.println(t.getClass().getName());
	}
}
